package com.example.cyk.config.response;

import lombok.Data;

/**
 * 统一数据返回
 */
@Data
public class AppReturn {

    //状态码
    private Integer code;
    //状态信息
    private String msg;
    //数据
    private Object data;

    public static AppReturn success(Integer code, String msg, Object data) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(code);
        appReturn.setMsg(msg);
        appReturn.setData(data);
        return appReturn;
    }

    public static AppReturn success() {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(CodeMsg.SUCCESS.getCode());
        appReturn.setMsg(CodeMsg.SUCCESS.getMsg());
        return appReturn;
    }

    public static AppReturn success(CodeMsg codeMsg, Object data) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(codeMsg.getCode());
        appReturn.setMsg(codeMsg.getMsg());
        appReturn.setData(data);
        return appReturn;
    }

    public static AppReturn success(Object data) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(CodeMsg.SUCCESS.getCode());
        appReturn.setMsg(CodeMsg.SUCCESS.getMsg());
        appReturn.setData(data);
        return appReturn;
    }

    public static AppReturn success(CodeMsg codeMsg) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(codeMsg.getCode());
        appReturn.setMsg(codeMsg.getMsg());
        return appReturn;
    }

    public static AppReturn success(String msg) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(CodeMsg.SUCCESS.getCode());
        appReturn.setMsg(msg);
        return appReturn;
    }


    public static AppReturn fail(Integer code, String msg, Object data) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(code);
        appReturn.setMsg(msg);
        appReturn.setData(data);
        return appReturn;
    }

    public static AppReturn fail(CodeMsg codeMsg, Object data) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(codeMsg.getCode());
        appReturn.setMsg(codeMsg.getMsg());
        appReturn.setData(data);
        return appReturn;
    }

    public static AppReturn fail(Object data) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(CodeMsg.FAIL.getCode());
        appReturn.setMsg(CodeMsg.FAIL.getMsg());
        appReturn.setData(data);
        return appReturn;
    }

    public static AppReturn fail(String msg) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(CodeMsg.FAIL.getCode());
        appReturn.setMsg(msg);
        return appReturn;
    }

    public static AppReturn fail(CodeMsg codeMsg) {
        AppReturn appReturn = new AppReturn();
        appReturn.setCode(codeMsg.getCode());
        appReturn.setMsg(codeMsg.getMsg());
        return appReturn;
    }

}
